package symbolrt.main;

import symbolrt.base.TIOSTS;

/**
 * <code>OperableIF</code> Class. <br>
 * 
 * Represents the system contract
 * 
 * @author Jeanderson Barros Candido ( <a
 *         href="mailto:jeandersonbc@gmail.com">jeandersonbc@gmail.com</a> )
 * 
 * @version 1.0 <br>
 *          (C) Copyright 2012 SYMBOL-RT Translator.
 */
public interface OperableIF {

	/**
	 * Gets a processed {@link TIOSTS} model for the given system specification
	 * 
	 * @see OperableIF#setInputData(String, String, String)
	 * 
	 * @return A model representing a system specification
	 */
	TIOSTS getOutputSpecification();

	/**
	 * Gets a processed {@link TIOSTS} model for the given test purpose
	 * specification
	 * 
	 * @see OperableIF#setInputData(String, String, String)
	 * 
	 * @return A model representing a test purpose
	 */
	TIOSTS getOutputTestPurpose();

	/**
	 * Sets the required input data for the Translator usage
	 * 
	 * @param filePath
	 *            The path to the source-code
	 * @param specificationName
	 *            The name of the specification model
	 * @param testPurposeName
	 *            The name of the test purpose model
	 */
	void setInputData(String filePath, String specificationName,
			String testPurposeName);

}
